
package edu.upn.sigemfi.plt.beans;

import edu.upn.sigemfi.plt.bc.TipoMicroseguroDelegate;
import edu.upn.sigemfi.plt.be.EstadoTipoMicroseguro;
import edu.upn.sigemfi.plt.be.TipoMicroseguro;
import java.util.List;
import javax.faces.model.SelectItem;
import edu.upn.sigemfi.seg.beans.AbstractController;


public class TipoMicroseguroController extends AbstractController{

    private TipoMicroseguroDelegate tipoMicroseguroDelegado;
    private TipoMicroseguro tipoMicroseguro;
    private EstadoTipoMicroseguro estadoTipoMicroseguro;


    public TipoMicroseguroController()  {
        tipoMicroseguroDelegado = new TipoMicroseguroDelegate();
        
    }

    public String cancelar() {
        return "cancelar";
    }

    public String index() {
        return "index";
    }

    public String listartipomicroseguros() {
        return "listartipomicroseguros";
    }

    public String mostrar(){
        return "mostrar";
    }
    
    public String editar() {
        return "editar";
    }

    public String volver(){
        return "volver";
    }

    public String tipomicroseguro(){
        return "tipomicroseguro";
    }
    
    public String nuevo(){
        tipoMicroseguro = new TipoMicroseguro();
        return "nuevo";
    }
    
    public String registrar(){
        try {
            //Seteamos a un estado activo por defecto cuando se crea un tipo de microseguro
            tipoMicroseguro.setEstado(estadoTipoMicroseguro.Activo);
            tipoMicroseguroDelegado.crear(tipoMicroseguro);
            info("El TipoMicroseguro se registró correctamente");
        } catch (Exception e) {
            error(e.getMessage());
        }
        return "listar";
    }

    public String actualizar(){
        try {
            tipoMicroseguroDelegado.editar(tipoMicroseguro);
            info("El TipoMicroseguro se actualizó correctamente");
        } catch (Exception e) {
            error(e.getMessage());
        }
        return "listar";
    }

    public String eliminar(){
        try {
            tipoMicroseguroDelegado.eliminar(tipoMicroseguro);
            info("El TipoMicroseguro se eliminó correctamente");
        } catch (Exception e) {
            error(e.getMessage());
        }
        return "null";
    }

    public List<TipoMicroseguro> getTipoMicroseguros(){
        try {
            return tipoMicroseguroDelegado.listar();
        } catch (Exception e) {
            error("Error al Listar");
        }
        return null;
    }



    public SelectItem[] getEstadoTipoMicroseguros(){
        EstadoTipoMicroseguro[] estadoTipoMicroseguros = EstadoTipoMicroseguro.values();
        SelectItem[] select = new SelectItem[estadoTipoMicroseguros.length];

        int i=0;
        for(EstadoTipoMicroseguro etm : estadoTipoMicroseguros){
            select[i++] = new SelectItem(etm,etm.toString());
        }
        return select;
    }

    public TipoMicroseguro getTipoMicroseguro() {
        return tipoMicroseguro;
    }

    public void setTipoMicroseguro(TipoMicroseguro tipoMicroseguro) {
        this.tipoMicroseguro = tipoMicroseguro;
    }


}
